{"componentChunkName":"component---src-templates-tutorial-js","path":"/zh/tutorial/DataProcessing/DataManagement/SpatialIndexStorage/","webpackCompilationHash":"701a08e4d62251ad0d41","result":{"data":{"markdownRemark":{"html":"<p>以下示例均以Oracle数据源为例，按照索引类型介绍空间索引的维护方式以及索引的存储情况，方便高级用户深入了解索引在数据库中的结构。</p>\n<h3 id=\"四叉树索引\"><a href=\"#%E5%9B%9B%E5%8F%89%E6%A0%91%E7%B4%A2%E5%BC%95\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>四叉树索引</h3>\n<p><strong>适用范围：</strong> 适用于小数据量的高并发编辑。</p>\n<p><strong>维护方式：</strong> 没有对应的索引表，如果建此索引，只修改数据集属性表的SmKey值。</p>\n<p><strong>索引存储示例：</strong></p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/iDesktop/static/8fa53550cc75e085f582e5b2e9ffb83f/cc6c8/FourtreeStorage.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 141px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 129.7872340425532%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAaCAYAAAC3g3x9AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFaElEQVRIx11VbVPaShTm//dDZ9pPbae19apVEQRUXgMkQd4CJBBAEYFAAlhAbFUkEAjPzVmm9fYmc4Yluzk5+7ycdQ0GAywWCzw/P2M+n8MwDCSTSWQyGUiShPv7e1iWhbu7O7RaLcTjcXAch8vLS9RqNby8vGA2m9nOhV6vZ7gqlQqGwyF7YTwesyRv3rzB27dv8f79e/bS09MTqtUqS0RzFO/evWPJp9MpRqORTQUVCgXDRQs1TUMsFkM2m4WiKDBNk1VrLkz2IapW13V0u12Uy2VQEfV6nY1zuRwKUsGmcbvdNlxUQbPZxN7eHvx+P0tI5a9Xa9BFCf0BP/r9Pkvo9XoRCARYdZFIBBcXFwicBex8Pk+wGS5KcHNzwxYl4gmIsgjN1NCdd6EvdVxNrhDMBlEdVlEZVBDKh8DJHHK3OUQKEfhFPwKpgB0vx6EOVMN1dXVFpeLw8BDRcBRCRUDH7kBbazCcWxkr+Bb8BnkoQzIkHHAHOIgd4ChxhNP0Kfw5P3wZn524TqD53DRcsiyj0WiwrYTDYRRLRczMGWbzGUzLxPDHELzIo2f0oPU0CCkBuUIOtesaMrkMm3Oe2VJRgt7XDReBScScnJxAEAQosoLVcgVrYQEbQO/pkEsyJuMJ2q02zs/OEQwGEefiWwnFOMLSrpQrePr1tGWZtszFOaRTafAlHl2ri96yB2Nt4PrhGjElhtqohuqPKvgaD/FKRLqZZr/JahJCXbDTN2lU76qvLO/u7sJ/6gev8Giv2uhYHejOXRwW8dHzEfluHtlOFp+8n7AT2MFR/Ah74T18Pf+KL/4vdiAXQOOxsWWZMAyFQkgkEpAKEuaLOV7MFyysBUaTEbJSFv1hn0U6l4ZUknDdvEZOyiEhJJAUk3ZRKcIYGluWqUKSjc/nYzrc2Bus11sdjkdjJnrSYN/oM9woeJ5ngs9LTuW5rE1FMR0Sy5TQ4/GAi3JIFpLomB105h30rB7UkYqT5AnUOxWFbgFewYtgPki44SxzBk/SAy/vtUNSCOV++TXh/sE+Tj2n4CQOLauF9qINbaWhOq3is+8zCnqBYbh7sYv98D7ToTvpxnHiGIexQ5urclsMf3uZukexWIRSVhh2FCt7hemvKZrtJqY/pxjcDaCoCipVx8uNOtS6Crkso6yW7fp1neYNl6qqTDa0ZfIm/ad2RbHZbBiGpE/yNK079Z3i/Pyctbg/Xg5svfz4+LgV9u3tLZsQeAHJooPh0rHeQoO+0lGf1hGUgkyHlWEFF7kLREtRkO7ChTB8gg/+lN8mrTpe3+qQGCSGY9EYUpUUOusOuqsu83L9Z53hVbuvMQz/Cf3D4nvsO06EE3hTXrgFt803eLRmra0Of8uGtOg0SdYH5+YcS2uJ8WSMVMr5iNbB7GXG5qyVA8naYmOKtb22W+0WrXltDtQLCRvq2NbSYscC9cTJZAIxJbJd0LPlcomFufhr7OjWJj07R8R2y85ZwFwi8iIu1UtolsY0aNgGbh5vwFU4lAdldJeOx1e9v4J839/07VK/BKWvbM8UYs/tdjMdimUR7aWjwaVDiq1Dnag4iBywZkAfoY/9N4hAx5R2vBZHtpXdssxk4/UgGo2iJJewWC7+YDV9mIJLcNANneFqLk3m9d/40TNnnd3pOkTq3VdhU48jzxJJq/WKJSMdPvx8wGX6Ev1Bnz3//7Whpgm8kkIJ6Lw9Pj5GOBiGqIhomS3mZ8KH5OJYC7IhQ+7LSNaTCBVCCGQC4K94+FI+nGXP7EQtscWwVCqxQ2pnZwfHh8dIFBNoLRwvm22mRcLwg/sDpK6EvJZHRIkwL389+4poOQrxRqTENnk61UgZ/wLGFgb19gOB0wAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"FourtreeStorage\"\n        title=\"\"\n        src=\"/iDesktop/static/8fa53550cc75e085f582e5b2e9ffb83f/cc6c8/FourtreeStorage.png\"\n        srcset=\"/iDesktop/static/8fa53550cc75e085f582e5b2e9ffb83f/cc6c8/FourtreeStorage.png 141w\"\n        sizes=\"(max-width: 141px) 100vw, 141px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n      </p>\n<hr>\n<h3 id=\"r-树索引\"><a href=\"#r-%E6%A0%91%E7%B4%A2%E5%BC%95\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>R 树索引</h3>\n<p><strong>适用范围：</strong> 比较适合静态数据，例如用作底图的数据和不经常编辑的数据（属性数据的编辑除外）推荐建立 R 树索引。</p>\n<p><strong>维护方式：</strong></p>\n<ul>\n<li>对应的索引表名：sm<em>idx</em>数据集表名，用来存储R树索引的数据。</li>\n<li>创建完索引，在没有修改数据集几何对象时，数据集属性表的SmKey=-2。</li>\n<li>注册表smregister中的SmIndexLevel=0。</li>\n<li>如果添加或修改记录，则此记录的SmKey可能大于-2（由于R树索引算法决定）。</li>\n<li>如果有记录的SmKey大于-2，则注册表smregister中的SmIndexLevel=5。</li>\n</ul>\n<p><strong>索引存储示例：</strong></p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/iDesktop/static/249bba7882980ce23e87a90f795ef40c/e198c/RtreeStorage.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 818px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 24.69437652811736%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAFCAYAAABFA8wzAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABJklEQVQY002Q2W6CABBF+f8Pam2Npo2JtNYFpEVDkU0WQSUIglWWU9Q+dCY3N5ObnJmM0DQNV93rv9917brN67riVNZY6QUzLVkfK9bZBfs6H0r8vKKsaoQ/Ak5Ws84b7Nbd1v0T5OU9S5IDvV4fVVWZSRLP3S62beN5PuPZBM3ViY4Rqq4ibKMtwT7AKxJW+7AFpZjJDtlc4cYhJwrCeEun84QkS4xGIyaTMUEQtFAH8X3I0l6wyTZMv6YI8/kc1VCJLzuMQCdrDnixw4vY59NQSJuEwDF4fOjcYKIoEkURVVVhGCbDtyHKSiE4blA0BcFptzi+Q5In+JFP+pO1F0Usvpe4oUtRFezXNoPXAR/jMZZl3d5wPp9xXQ9ZkdEdnbiI0UyNX3izcWfwNJfLAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"RtreeStorage\"\n        title=\"\"\n        src=\"/iDesktop/static/249bba7882980ce23e87a90f795ef40c/e198c/RtreeStorage.png\"\n        srcset=\"/iDesktop/static/249bba7882980ce23e87a90f795ef40c/6a467/RtreeStorage.png 210w,\n/iDesktop/static/249bba7882980ce23e87a90f795ef40c/635b1/RtreeStorage.png 420w,\n/iDesktop/static/249bba7882980ce23e87a90f795ef40c/e198c/RtreeStorage.png 818w\"\n        sizes=\"(max-width: 818px) 100vw, 818px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n      </p>\n<hr>\n<h3 id=\"图幅索引\"><a href=\"#%E5%9B%BE%E5%B9%85%E7%B4%A2%E5%BC%95\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>图幅索引</h3>\n<p><strong>适用范围：</strong></p>\n<ul>\n<li>字段索引：即根据数据集的某一属性字段将空间对象进行分类，通过索引进行管理已分类的空间对象，以此提高查询检索速度。</li>\n<li>范围索引：即根据给定的一个范围（图幅的长和宽）将空间对象进行分类，通过索引进行管理已分类的空间对象，以此提高查询检索速度。</li>\n</ul>\n<p><strong>维护方式：</strong></p>\n<ul>\n<li>对应的索引表名：Lib_数据集表名。</li>\n<li>数据集属性表中的SmLibTileID值对应索引表中的SmID。</li>\n<li>SMLIBTILENAME字段记录数据所在的行列号（行列号的（0,0）值从数据集范围的左下角开始计算）。</li>\n<li>数据集表中的SmLibTileID字段和索引表中的SMID字段是一对多的关系。</li>\n<li>数据查询的过程：第一步，根据获取当前地图窗口的范围；第二步，根据范围和图幅索引分幅时每个图幅的大小，判断在当前视图中都有哪些图幅需要显示；第三步，在对应的索引表（Lib_数据集表名）中找到与这些图幅对应的SMID值；第四步，通过这个SMID值与数据集表的SmLibTileID字段的关联关系，找到所需要显示的对象。通过以上四步，就可以快速定位到所需显示的对象。</li>\n<li>对于新增加的对象，同时，该对象在原数据集范围外，这时，会将该对象添加到索引表的SMID=1中。</li>\n</ul>\n<p><strong>索引存储示例：</strong></p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/iDesktop/static/8d3750206512b2baa50a0b70eb30c87d/50336/TileStorage.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 541px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 51.20147874306839%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB/UlEQVQoz3WS23KiQBRF/f8vmS+YylQm0agMGkFQERUzavCGIzeJRmkuawimzFO6alf30+q99zkVvjl5npf3Ic74vY55cgSrC1hH+LkRNDxoujk/7IQ7J+duk1B1YipZluF6Ln7gEwRBqTRNb0CRZmzDE/vDCXu54XX2im079HomQ8OiP1mgmC+M7B3uqQAKIWjLbVRFpat00VSN7WZLmqQl8ONDZzHHVhV6tRqzwYDVZIxSfyrefea6xuDxgbnS4XiMqCR5QpiHBFlwVR4w3U6Jk7gEfrhdrdaocgtr2uPt/A/DUNC7Mj2tRV9vs7BH+BeX8HigkuYpfuzfFIiAxW7BRVxuwOVyidrtMl5MCLOIsW3RUCR+1e+pPzcZvAzxzj7hW3h16Ar3Ji/xsNYWsfhyuF6vy0rGS4sDb5h/h7T0FjW5RlV6RNbkAuhxKB1mKcEl+JIImS2nCHcPYUhaDGxtmuj1OtNOkzBYYcxNZF2mKldLaMfosH/fF5E/HfrCxxNeKT/xme1miM8Os+JDx3HoahpTUyM67srIraK/xnOD6p8qqqniXTyiU/R95HN87TCO42IIRhnZfB0TEmG8GDQKtw/NBx6LyLql457dq8OPyNEluulwPjCZTUpQuYfFWo1GIyRJwlwM2cf70pGkSdw37svY7X6b3fuuBP4HIsXhW1hjjLUAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"TileStorage\"\n        title=\"\"\n        src=\"/iDesktop/static/8d3750206512b2baa50a0b70eb30c87d/50336/TileStorage.png\"\n        srcset=\"/iDesktop/static/8d3750206512b2baa50a0b70eb30c87d/6a467/TileStorage.png 210w,\n/iDesktop/static/8d3750206512b2baa50a0b70eb30c87d/635b1/TileStorage.png 420w,\n/iDesktop/static/8d3750206512b2baa50a0b70eb30c87d/50336/TileStorage.png 541w\"\n        sizes=\"(max-width: 541px) 100vw, 541px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n      </p>\n<hr>\n<h3 id=\"动态索引\"><a href=\"#%E5%8A%A8%E6%80%81%E7%B4%A2%E5%BC%95\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>动态索引</h3>\n<p><strong>适用范围：</strong> 结合了 R 树索引与四叉树索引的优点，提供非常好的并发编辑支持，具有很好的普适性。</p>\n<p><strong>维护方式：</strong></p>\n<ul>\n<li>对应的索引表名：SM<em>GDX</em>数据集ID。</li>\n<li>SmDynamicIndex表记录着各数据集的动态索引信息。</li>\n</ul>\n<p><strong>索引存储示例：</strong></p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/iDesktop/static/7454e912c9f121f4f0cea87f3039a162/c70a2/multilevelStorage.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 12.195121951219514%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAACCAYAAABYBvyLAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAe0lEQVQI1z1MSw6DIBT0/kcSDAiGtiRduKnaQuqr7zV6iimy6GIy30yz7wdSTliey59fKRWdISJg5pq91xUbb6AP4TFNRTPkK8hld25ZGESE5jyZaYa9WGinK9y1h795dL6riGOsvXKq+iEOMMFA9wo+eoR7gA0WrWnxA8IDijMf+XQfAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"multilevelStorage\"\n        title=\"\"\n        src=\"/iDesktop/static/7454e912c9f121f4f0cea87f3039a162/04a72/multilevelStorage.png\"\n        srcset=\"/iDesktop/static/7454e912c9f121f4f0cea87f3039a162/6a467/multilevelStorage.png 210w,\n/iDesktop/static/7454e912c9f121f4f0cea87f3039a162/635b1/multilevelStorage.png 420w,\n/iDesktop/static/7454e912c9f121f4f0cea87f3039a162/04a72/multilevelStorage.png 840w,\n/iDesktop/static/7454e912c9f121f4f0cea87f3039a162/c70a2/multilevelStorage.png 943w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n      </p>\n<hr>\n<h3 id=\"备注\"><a href=\"#%E5%A4%87%E6%B3%A8\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>备注</h3>\n<p>在数据进行了增删的修改后，索引会进行自动的维护，但在此处为了不影响显示的效率，维护并不会对索引进行重建，因此，在进行了大量的增删操作后，建议手动重建索引，以达到索引更新维护，保证数据的显示查询效率。</p>","frontmatter":{"title":"索引存储示例","next":null,"prev":null},"fields":{"path":"content\\zh\\tutorial\\DataProcessing\\DataManagement\\SpatialIndexStorage.md","slug":"/zh/tutorial/DataProcessing/DataManagement/SpatialIndexStorage/","langKey":"en"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"slug":"/zh/tutorial/DataProcessing/DataManagement/SpatialIndexStorage/"}}}